$(function () {

    jQuery("input:text").focus(function () {
        jQuery(this).addClass("xgxx_main_table_top_input_focus")
    }).blur(function () {
        jQuery(this).removeClass("xgxx_main_table_top_input_focus");
    })

    var valid = jQuery("form").Validform({
    	beforeCheck: function(curform) {
    		if (typeof(window["beforeFormCheck"]) == 'function') { 
    			return beforeFormCheck(curform);
    		}
    		return true;
    	},
    	beforeSubmit: function(curform) {
    		if (typeof(window["beforeFormSubmit"]) == 'function') {
    			return beforeFormSubmit(curform);
    		}
    		return true;
    	},
        showAllError: true,
        ajaxPost:true, //采用ajax提交
        btnSubmit : "#subBtn",
        ignoreDisabled: true, //新增属性，可选，true | false 默认为false，当为true时对:disabled的表单元素将不做验证;
        getFocus: true, //新增属性，可选，true | false 默认为true，表示第一个验证失败的元素时候获得焦点;
        datatype: {
            "zh1-6": /^[\u4E00-\u9FA5\uf900-\ufa2d]{1,6}$/
        },
        tiptype: function (msg, o, cssctl) {
            //msg：提示信息;
            //o:{obj:*,type:*,curform:*}, obj指向的是当前验证的表单元素（或表单对象），type指示提示的状态，值为1、2、3、4， 1：正在检测/提交数据，2：通过验证，3：验证失败，4：提示ignore状态, curform为当前form对象;
            //cssctl:内置的提示信息样式控制函数，该函数需传入两个参数：显示提示信息的对象 和 当前提示的状态（既形参o中的type）;
            if (!o.obj.is("form")) {//验证表单元素时o.obj为该表单元素，全部验证通过提交表单时o.obj为该表单对象;
                var objtip = o.obj.next(".info,.info_").find(".Validform_checktip");
                if (objtip.length == 0) {
                    o.obj.after('<div class="info"><span class="Validform_checktip">' + msg + '</span><span class="dec"><s class="dec1">&#9670;</s><s class="dec2">&#9670;</s></span></div>')
                    objtip = o.obj.next(".info").find(".Validform_checktip");
                }
                cssctl(objtip, o.type);
                msg = msg.replace("通过信息验证！", "&nbsp;");
                objtip.html(msg);
                var infoObj = o.obj.next(".info");

                if (o.type == 2) {
                }
                else {
                    if (infoObj.is(":visible")) { return; }
                }
            }
        },
        callback:function(data) {
        	//这里设置列表返回控制
        	if (typeof(window["formCallBack"]) == 'function'){//自定义
        		formCallBack.call(this,data);
        	} else { //默认
        		var view =  parent.listView;
    			if (data.success == true) {
    				if(data.status==200){
	    				view.closeWindow();
	    				view.queryResItem();
    				}
    		        view.tip(data.info);
    			} else {
    				if(data.status==600){
	    			     alert('用户已过期，请重新登录！');
	    			     top.location.href = cfg.cxt+'/login.jsp';
    				}else{
    					view.tip('操作失败！')
    				}
    			}
        	}
        	
        }
    });
    jQuery(window).resize(function () { jQuery(".Validform_error").blur(); }); //窗口改变大小时失焦,起到让验证信息隐藏的效果
    
    //初始化绑定验证
    bindVF(jQuery("input,select,textarea"));

    //如果把表单放在一个有滚动条的div中.使用以下代码
    jQuery(".xgxx_main_table2").scroll(function () {
        var _info = jQuery(".info:not(:hidden),.info_:not(:hidden)");
        var _focus = jQuery("input:focus,select:focus,textarea:focus");
        if (_info.length == 0) {
            if (_focus.length != 0) {
                if (_focus.offset().top > 0){
                	if (_focus.next(".info,.info_").find(".Validform_checktip").text().replace(/[ ]/g, "") != ""){
                		_focus.next(".info,.info_").show();
                	}
                }
            }
            return false;
        }
        var _d_top = jQuery(this).offset().top;
        if (_info.prev().offset().top - _d_top <= 0) {
            _info.hide();
            return false;
        }
        if (_info.prev().width() + _info.prev().offset().left <= $(window).width() - 150)
			_info.offset({ top: _info.prev().offset().top - 2 });
		else
			_info.offset({ top: _info.prev().offset().top + 25 });
    })

})

function bindVF(objs/*对象数组*/) {
	for(var i = 0; i < objs.length; i++) {
		var $obj = jQuery(objs[i]);
		$obj.blur(validateBlur);
		$obj.focus(validateFocus);
	}
}

var validateBlur = function () {
    jQuery(this).next(".info,.info_").hide();
}

var validateFocus = function () {
    $this = jQuery(this);
    if ($this.hasClass("Validform_error")) {
        var left = $this.offset().left,
        top = $this.offset().top,
        width = $this.width();
        if ($this.width() + $this.offset().left <= jQuery(window).width() - 150) {
            if ($this.next(".info,.info_").find(".Validform_checktip").text().replace(/[ ]/g, "") != "") {
                $this.next(".info,.info_").removeClass().addClass("info").css({
                    left: left + width + 10,
                    top: top - 45
                }).show().animate({
                    top: top - 2
                }, 200);
            }
        }
        else {
            if ($this.next(".info,.info_").find(".Validform_checktip").text().replace(/[ ]/g, "") != "") {
                $this.next(".info,.info_").removeClass().addClass("info_").css({
                    left: left + 10,
                    top: top - 45
                }).show().animate({
                    top: top + 25
                }, 200);
            }
        }
    }
}
//并排三个select之间的验证仍有问题
//模拟disabled
//$(function () {
//    jQuery("#select3").change(function () {
//        if (jQuery(this).val() == "2")
//            jQuery("#select4").attr("disabled", "true").removeClass("Validform_error"); //removeClass("Validform_error")必须加
//        else
//            jQuery("#select4").attr("disabled", null);
//    })
//})